package com.southwind.controller;


import com.southwind.entity.User;
import com.southwind.service.BorrowService;
import com.southwind.vo.BorrowVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.stereotype.Controller;

import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 */
@Controller
@RequestMapping("/borrow")
public class BorrowController {
    /**
     * 自动注入BorrowService，用于处理借阅业务逻辑
     */

    @Autowired
    private BorrowService borrowService;
    /**
     * 添加借阅记录
     * <p>
     * 此方法接收一个图书ID和HttpSession对象作为参数。
     * 从session中获取当前登录用户的信息，调用BorrowService的add方法添加借阅记录，
     * 然后重定向到图书列表页面。
     *
     * @param bookId 借阅的图书ID
     * @param session 用户会话对象，用于获取当前登录用户
     * @return 重定向到图书列表页面的URL
     */

    @GetMapping("/add")
    public String add(Integer bookId, HttpSession session){
        User user = (User) session.getAttribute("user");
        System.out.println("111");
        this.borrowService.add(user.getId(), bookId);
        return "redirect:/book/list/1";
    }

    /**
     * 获取用户的借阅记录列表
     * <p>
     * 此方法接收一个HttpSession对象和Model对象作为参数。
     * 从session中获取当前登录用户的信息，调用BorrowService的borrowList方法获取借阅记录列表，
     * 将列表添加到Model中，然后返回用户借阅页面的视图名称。
     *
     * @param session 用户会话对象，用于获取当前登录用户
     * @param model 存储数据的Model对象
     * @return 用户借阅页面的视图名称
     */

    @GetMapping("/list")
    public String list(HttpSession session, Model model){
        User user = (User) session.getAttribute("user");
        List<BorrowVO> borrowVOList = this.borrowService.borrowList(user.getId());
        model.addAttribute("list", borrowVOList);
        return "/user/borrow";
    }

}

